<?php
declare (strict_types = 1);

namespace app\admin\controller;

use app\admin\model\User;
use think\exception\ValidateException;
use think\facade\Cookie;
use think\facade\Session;
use think\facade\View;
use think\Request;

use think\facade\Log;

class Login
{

    /**
     * 展示登录页面
     */
    public function login(){

        // 登录页面或者注册页面不需要后台的布局 、临时关闭模版布局
        View::config(['layout_on' => false]);
        return View::fetch('/login');// 展示视图
    }

    /**
     * ajax 登录
     * 验证器的简单使用
     * @return \think\response\Json
     */
    public function doLogin(){
        try {

            $code = \request()->post('code');

//            if (!captcha_check($code)) {
//                return  json(['code' => 2003,'msg' => '验证码不正确','data' => []]);
//            }

            $username = \request()->post('username');
            $password = \request()->post('password');
            # 使用验证器
            validate(\app\admin\validate\User::class)->check(['username' => $username,'password' => $password]);

            $userInfo = User::where('username',$username)->find();
            if (empty($userInfo)) {
                return json(['code' => 2001,'msg' => '用户名不存在','data' => []]);
            }
            if ($userInfo->password != md5($password)) {
                return json(['code' => 2001,'msg' => '密码错误','data' => []]);
            }

            # 用户状态为禁用不能进行 激活状态 0未激活 1已激活
            if ($userInfo->is_check == 0) {
                return json(['code' => 2001,'msg' => '帐号未激活、不能进行登录','data' => []]);
            }

            # session
//            将登录的用户存储到session
            Session::set('username',$userInfo->username);

            # 登录成功 、添加成功、修改成功、删除成功
            Log::info($userInfo->username."登录成功");

            return json(['code' => 200,'msg' => 'ok','data' => []]);
        }catch (ValidateException $validateException){
            // 验证失败 输出错误信息
            dd($validateException->getError());
        }
    }

    /**
     * 退出登录
     */
    public function logout(){
        Session::delete('username');
        return redirect('/admin/login');
    }


    /**
     * 在TP框架中简单使用
     */
    public function cookieAndSession(){
        # session
        # 存储session 键 name 值为fenglianxing
//        Session::set('name','fenglianxing');
        # 获取session
//        echo Session::get('name');
//        # 判断sessin是否存在
//
//        Session::delete('name');
//
//        echo Session::has('name');

        Cookie::set('name','xutianqiang',60);

    }


    public function add(){
//        User::create(['username'=> "zhagnsan"]);

        // 软删除
        Goods::destory($id);
    }
}
